1. Field of the Invention
The present invention relates to a device control system, a network constructed by the system, and a program executed on a device constructing the system. More particularly, the present invention relates to a device control system in which a controlling host device and a target device to be controlled are connected to each other and, in accordance with its own system environment, the host device uploads optimal program code required for controlling the target device. The present invention further particularly relates to a network constructed by the above device control system, and a program executed on the host device and the target device constructing the device control system.
2. Description of the Background Art
In recent years, various types of AV devices and information terminal devices have been manufactured for home use. In accordance with this recent trend, techniques for connecting a plurality of devices placed at home to one another and controlling them from one another have established. For example, with the use of such techniques, a television receiver and a videocassette recorder (VCR) are connected to each other for enabling a control of the VCR through a screen of the television receiver. One such technology is HAVi (Home Audio/Video interoperability), which is detailed in “The HAVi Specification Version 1.0” by the HAVi Organization. Also, there is another technology for connecting a personal computer, a printer, a scanner, etc., to one another to automatically construct a network. This technology is typified by Jini, which is detailed in “Jini Technology Specific Attachment v1.0” by Sun Microsystems, Inc.
The above-mentioned techniques generally employ the following scheme. A device to be controlled (hereinafter referred to as a target device) stores in advance program code that describes information required for it own control (control code). Under HAVi specifications, for example, program code using API (Application Program Interface) is stored. A controlling device (hereinafter referred to as a host device) uploads the program code for interpretation, thereby performing a process of controlling the target device and other processes.
With the use of the above-described scheme, the host device can control the target device even without knowing in advance how to control the target device. Therefore, it is possible to connect devices to one another for control regardless of manufacturer.
In general, systems configured with the above-mentioned technologies assume that a plurality of host devices and a plurality of target devices are connected to one another.
Here, consider a case in which each target device holds a single piece of program code for control of it own all functions of its own. In this case, in order for each host device to be capable of controlling all target devices, an advanced system environment is required for each host device so as to fully support the program code of every target device. As a result, each host device disadvantageously becomes expensive.
To get around the above disadvantage, consider a case in which the host devices are provided with different system environments according to capability. In this case, in order for each host device to be capable of controlling all target devices, each target device stores in advance a plurality of pieces of program code in accordance with the system environments of the host devices. Of these pieces of program code, the host device uploads program code optimal to its system environment.
One conventional technology associated with the above-stated process of uploading optimal program code is disclosed in Japanese Patent Laid-Open Publication No. 10-214243 (1998-214243), although not directly related to the above-discussed device control.
In this conventional technology, a driver software program is exchanged between a device (a printer, for example) and a device controller (a personal computer, for example). Specifically, a plurality of driver software programs are stored in advance at the device side correspondingly to different operating systems (OS) installed in connectable device controllers. Then, one device controller uploads a driver software program optimal to the controller's OS. Thus, it is possible to always upload an optimal driver software program from the device to the device controller.
In the above conventional technology, what is uploaded is a driver software program, which does not take up much free space of the memory of the device controller. Moreover, only a single driver software program corresponds to a single OS installed in each device controller (that is, each host device). Therefore, only by determining the OS (the system environment) of the host device, an optimal driver software program can be uniquely determined.
In a case where what is uploaded is program code that takes up a large amount of free space, however, what should be considered is the system environment of the host device, such as its OS, CPU, and cache memory, as well as the free space in a memory area for storing the program code. That is, the free space in the memory area of the host device is varied in accordance with how applications and other data use the memory area. Therefore, it is desirable to determine the state of each host device in comprehensive consideration of its system environment and the free space in the memory area for uploading. Based on the determination results, which program code should be uploaded is determined.
Therefore, merely applying the above conventional scheme to a device control cannot achieve uploading of optimal program code further in consideration of the change in state of the host device.
Furthermore, when the driver software program is to be uploaded, each host device merely uploads the relevant driver software program without any relation to the other host devices connected to the same network.
When the program code is to be uploaded, however, a relation to the other host devices connected to the same network matters. If the state of connection of the other host devices to the network and the program code already uploaded are taken into consideration, a larger variety of uploading schemes and device controlling schemes can be achieved.